package busca;
import java.util.ArrayList;
import java.util.PriorityQueue;
import java.util.Queue;
import java.util.List;
//import com.sun.xml.internal.bind.v2.schemagen.xmlschema.List;

public class BuscaLargura extends Busca{

	    public BuscaLargura() {
	    }
	    
	    public No busca(Estado inicial) {
	    	startTime = System.currentTimeMillis();
	    	initFechados();
	    	//fila de nos
	        //Queue<No> filaNosAbertos = new PriorityQueue<No>();
	        List<No> filaNosAbertos = new ArrayList<No>(); 
	        
	        filaNosAbertos.add(new No(inicial, null));
	        while (filaNosAbertos.size() > 0) {
	            //No n = filaNosAbertos.remove();
	        	No n = filaNosAbertos.remove(0);
	            if (n.estado.isGoal()) {
	            	endTime = System.currentTimeMillis();
	                return n;
	            }
	            if((System.currentTimeMillis() - startTime) > 5000){
	            	return null;
	            }
	            List<No> sucessores = sucessores(n);
	            filaNosAbertos.addAll(sucessores);
	        }
	        return null;
	    }

}
